1. Field of the Invention
The invention relates to network data communications methods and systems. More particularly, it relates to client-server data communications and the efficient delivery of objects identified in a search.
2. Description of the Related Art
The Internet, as it is popularly known, has become an important and useful tool for accessing a wide variety of information. One component of the Internet is the World Wide Web (hereinafter the web). In recent years the web has become an increasing popular vehicle for providing information to virtually anyone with access to the Internet. Many sites (hereinafter, websites) have been established to provide, over the web, information in many different forms, such as text, graphics, video and audio information.
A typical website is hosted on a network server computer that includes application software programs. The server, also known as a web server, is connected to the Internet. By connecting the web server to the Internet, clients that are connected to the Internet can access the website via the web server. Usually, a client is located remotely from the web server, although the client and the server can be at the same location. A web server also can be connected to a private intranet, as opposed to or in addition to the public Internet, in order to make a website privately available to clients within an organization. A conventional client-server communication system used on the web is shown on FIG. 1. The system includes a client communicating to a server over a network connection.
The client accesses the website by using a web browser. The web browser is a software program that runs on the client and receives from the server information formatted in a known manner. A very popular format for information sent over the web from a server to a client is the hypertext mark-up language (HTML). HTML is a tag-based script language, in which tags surround the information to be presented. By tagging the information to be sent to a browser, the browser can interpret the tags and handle the presentation of the information sent from the server. It is left to the web browser to determine the specific display formatting of the information, based on the tags included in the HTML file sent from the server. For example, information to be displayed at a client might include text and graphics. That text, and even the graphics can include, by way of the HTML tags, links to other data, where the links are associated with the web page being presented by the browser. The browser communicates with the server using the hypertext transfer protocol (HTTP). Accordingly, the client includes an HTTP software module for communicating over the Internet with the server.
The server includes a transaction processor as well as software for delivering an object and accessing an object. The server also has access to one or more data stores for storing objects. The server includes an HTTP module that operates according to the HTTP protocol, as is well known in the art of data communications over an Internet.
A user, through the client's browser, can request a web page stored at the server in one of the object stores. The server then locates and returns the web page to the client for display on the browser.
Many types of search engines are in use for locating information among the vast amounts of information accessible on the Internet. A search engine allows a user to search for occurrences of various types of information, such as text, graphics, etc., that are present and accessible through the Internet. A server, upon receiving a search request from a client, creates an HTML page that is returned to the browser. Displayed in the HTML web page are the results of the search, also known as search hits. These search results can include a list of text items describing the search hits. Alternatively, a server can return the search results in the form of graphical images, as opposed to a textual list, where the information to be located is graphical in nature. The returned graphical images typically are miniature renderings of larger graphical images, and are referred to as thumbnail images. The thumbnail image is used as a link to the full size version of the image. The server communicates the thumbnail images to the client browser by first sending to the browser an HTML page that includes links to the various thumbnail images. The browser, upon receiving the HTML page with the links to the thumbnail images then requests those thumbnail images, or more generally objects, individually.
The transmission control protocol (TCP)/internet protocol (IP), commonly referred to as TCP/IP, is a suite of protocols and services that are used to manage network communications and applications over the Internet. The TCP protocol is a transport layer protocol that provides a connection-oriented protocol that usually guarantees delivery across the network. To communicate using TCP/IP it is necessary to first set up a session when an object is to be requested. When negotiating a network session, the phase at the beginning of the communication process is called the setup. At set-up the protocol details, communication rates and error handling approaches are worked out, allowing the connection to proceed correctly and reliably. Once a session is setup, the TCP/IP protocol can be used to transport requests from the client to the server and responses from the server to the client.
Once the desired communication between client and server is complete, the client and the server agree to stop communicating and then systematically tear down the session and recover port addresses and other resources used for the session. When requesting a plurality of objects from the server and returning those objects to the client, the client and server often establish sessions for each one of those transactions. Establishing those sessions requires incurring the overhead of setup and tear down for each of those sessions. Accordingly, when a search results in identifying a plurality of thumbnail objects to be requested from a server many communication sessions are set up to transmit the objects individually. Consequently, those communication sessions also must be torn down, resulting in a high degree of overhead processing.
As search engines and applications deliver a plurality of objects, such as graphical objects, as opposed to a single page of search result text being returned, the overhead associated with returning those objects becomes more expensive both in terms of time and resources. Accordingly, there is a need to minimize the overhead involved in requesting and returning a plurality of objects, in a data communication system, such as the World Wide Web.